package com.ybkj.o2o.sales.mapper;

import com.ybkj.o2o.sales.entity.CouponRule;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CouponRuleMapper {
  /**
   * 根据编码查询优惠券规则信息.
   * 
   * @param code 优惠券编码
   * @return CouponRule
   */
  CouponRule selectByCode(@Param("code") String code, @Param("appKey") String appKey);

  /**
   * 分页查询优惠券规则信息.
   * @param companyId 公司id
   * @param offset 页数
   * @param size 每页数量
   * @return List
   */
  List<CouponRule> selectByCompany(@Param("companyId") Long companyId,
      @Param("offset") Integer offset, @Param("size") Integer size, @Param("appKey") String appKey);


  /**
   * 统计优惠券规则信息.
   * 
   * @param companyId 公司id
   * @return Long
   */
  long countByCompany(@Param("companyId") Long companyId, @Param("appKey") String appKey);



  /**
   * 保存优惠券规则信息到数据库.
   * 
   * @param couponRule 优惠券规则内容
   * @return 保存成功返回Id信息
   */
  Long insertRecord(CouponRule couponRule);

  /**
   * 根据主键删除优惠券规则信息.
   * 
   * @param id 优惠券规则id
   * @return 返回影响的行数
   */
  int deleteByPrimaryKey(@Param("id") Long id, @Param("appKey") String appKey);

  /**
   * 根据主键修改数据.
   * 
   * @param couponRule 优惠券规则内容
   * @return Integer
   */
  int updateByPrimaryKey(CouponRule couponRule);

  /**
   * 根据主键查询优惠券规则信息.
   * 
   * @param id 优惠券规则id
   * @return CouponRule
   */
  CouponRule selectByPrimaryKey(@Param("id") Long id, @Param("appKey") String appKey);

  /**
   * 查询有效优惠券规则信息.
   * 
   * @param companyId 公司id
   * @return List
   */
  List<CouponRule> selectValidByCompany(@Param("companyId") Long companyId,
      @Param("appKey") String appKey);


}
